package processor

import "errors"

var(
	userMgr *UserMgr
)

type UserMgr struct {
	OnlineUser map[int]*UserProcess
}

func init() {
	userMgr = &UserMgr{OnlineUser:make(map[int]*UserProcess, 1024)}
}

func (um *UserMgr) AddOnlineUser(up *UserProcess)  {
	um.OnlineUser[up.UserId] = up
}

func (um *UserMgr) DelOnlineUser(userId int)  {
	delete(um.OnlineUser, userId)
}

func (um *UserMgr) GetAllOnlineUser() map[int]*UserProcess {
	return um.OnlineUser
}

func (um *UserMgr) GetByIdOnlineUser(userId int) (*UserProcess, error) {
	up, ok := um.OnlineUser[userId]
	if !ok{
		return nil, errors.New("user is not online")
	}
	return up, nil
}